package top.zlcode.ai.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import top.zlcode.common.core.domain.BaseEntity;

import java.time.LocalDateTime;

@Data
@TableName("tb_ai_api_call_record")
public class AiApiCallRecord extends BaseEntity {

    /**
     * 记录ID（主键）
     */
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 请求URL
     */
    private String url;

    /**
     * AI服务类型（1=deepseek，2=chatgpt，3=gemini）
     */
    private Integer aiServiceType;

    /**
     * API返回的唯一对话ID（非必填）
     */
    private String apiResponseId;

    /**
     * 调用的模型名称（如deepseek-chat）
     */
    private String modelName;

    /**
     * 输入的Prompt内容（精简存储）
     */
    private String promptContent;

    /**
     * AI生成的响应内容
     */
    private String generatedContent;

    /**
     * 模型停止生成原因（如stop/length）
     */
    private String finishReason;

    /**
     * Prompt的Token消耗数
     */
    private Integer promptTokens;

    /**
     * 生成内容的Token消耗数
     */
    private Integer completionTokens;

    /**
     * 总Token消耗数
     */
    private Integer totalTokens;

    /**
     * API响应时间
     */
    private Long apiResponseTime;

    /**
     * 扩展字段（JSON格式，存储AI特有字段）
     */
    private String extendInfo;
}
